import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;//JDBC对应的包
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

//通过这代码，往数据库的表中，插入一行记录
public class Demo1 {
    public static void main(String[] args) throws SQLException {
        //1.先创建一个DataSource 描述数据源头 = 》 数据库服务器位置
        //准备工作 并没有真正和mysql服务器进行通信
        DataSource dataSource = new MysqlDataSource();//来自于mysql驱动包 向上转型
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test_11_27?characterEncoding=utf8&useSSL=false");//向下转型
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("731889*a");

        /*MysqlDataSource mysqlDataSource = new MysqlDataSource();
        mysqlDataSource.setUrl();*/

        //2.建立和数据库服务器之间的连接，连接之后，才能后续的请求 - 响应 交互
        Connection connection = dataSource.getConnection();

        //3.构造sql （代码中的sql语句不需要写分号）
        String sql = "insert into student values(1,'张三')";
        PreparedStatement statement = connection.prepareStatement(sql);
        //prepared：准备好的/预处理的（先解析检查sql，看看sql是不是有什么问题）
        //解析完之后，也会得到结构化的数据，直接将解析好的结构化的数据发给数据库服务器
        //statement 语句

        //4.把sql发给服务器
        //executeQuery - select
        //executeUpdate -
        int n = statement.executeUpdate(); // 返回值 表示 影响到的行数
        System.out.println("n = " + n);

        //5.关闭连接，释放资源 先释放后获取到的资源
        statement.close();
        connection.close();

    }
}
